﻿<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright 2012 Eric Niebler

  Distributed under the Boost
  Software License, Version 1.0. (See accompanying
  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  -->
<library-reference xmlns:xi="http://www.w3.org/2001/XInclude">

  <!-- classes -->
  <section id="proto.reference.classes">
    <title>Classes</title>
    <itemizedlist>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_">proto::_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_byref">proto::_byref</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_byval">proto::_byval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_child_c">proto::_child_c</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_data">proto::_data</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_default">proto::_default</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_env">proto::_env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_env_var">proto::_env_var</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_expr">proto::_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_state">proto::_state</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_value">proto::_value</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::_void">proto::_void</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::address_of">proto::address_of</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::and_">proto::and_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::arity_of">proto::arity_of</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::assign">proto::assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::basic_default_domain">proto::basic_default_domain</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::basic_default_generator">proto::basic_default_generator</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::basic_expr">proto::basic_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::binary_expr">proto::binary_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_and">proto::bitwise_and</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_and_assign">proto::bitwise_and_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_or">proto::bitwise_or</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_or_assign">proto::bitwise_or_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_xor">proto::bitwise_xor</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::bitwise_xor_assign">proto::bitwise_xor_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::by_value_generator">proto::by_value_generator</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::call">proto::call</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::callable">proto::callable</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::char_">proto::char_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::comma">proto::comma</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::complement">proto::complement</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::compose_generators">proto::compose_generators</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::callable_context">proto::context::callable_context</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::callable_eval">proto::context::callable_eval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::default_context">proto::context::default_context</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::default_eval">proto::context::default_eval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::null_context">proto::context::null_context</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::context::null_eval">proto::context::null_eval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::convertible_to">proto::convertible_to</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::data_type">proto::data_type</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::deduce_domain">proto::deduce_domain</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::default_domain">proto::default_domain</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::default_generator">proto::default_generator</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::dereference">proto::dereference</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::divides">proto::divides</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::divides_assign">proto::divides_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::domain">proto::domain</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::domain::as_child">proto::domain::as_child</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::domain::as_expr">proto::domain::as_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::domain_of">proto::domain_of</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::empty_env">proto::empty_env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::env">proto::env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::equal_to">proto::equal_to</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::exact">proto::exact</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::expr">proto::expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::extends">proto::extends</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::external_transform">proto::external_transform</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::external_transforms">proto::external_transforms</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::fold">proto::fold</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::fold_tree">proto::fold_tree</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::function">proto::function</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::advance">proto::functional::advance</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::as_child">proto::functional::as_child</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::as_env">proto::functional::as_env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::as_expr">proto::functional::as_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::at">proto::functional::at</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::begin">proto::functional::begin</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::child">proto::functional::child</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::child_c">proto::functional::child_c</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::deep_copy">proto::functional::deep_copy</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::display_expr">proto::functional::display_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::distance">proto::functional::distance</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::empty">proto::functional::empty</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::end">proto::functional::end</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::env_var">proto::functional::env_var</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::eval">proto::functional::eval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::first">proto::functional::first</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::flatten">proto::functional::flatten</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::has_env_var">proto::functional::has_env_var</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::left">proto::functional::left</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::make_expr">proto::functional::make_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::make_pair">proto::functional::make_pair</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::next">proto::functional::next</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::pop_back">proto::functional::pop_back</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::pop_front">proto::functional::pop_front</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::prior">proto::functional::prior</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::push_back">proto::functional::push_back</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::push_front">proto::functional::push_front</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::rbegin">proto::functional::rbegin</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::rend">proto::functional::rend</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::reverse">proto::functional::reverse</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::right">proto::functional::right</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::second">proto::functional::second</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::size">proto::functional::size</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::unpack_expr">proto::functional::unpack_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::functional::value">proto::functional::value</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::generator">proto::generator</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::greater">proto::greater</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::greater_equal">proto::greater_equal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::if_">proto::if_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::if_else_">proto::if_else_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::int_">proto::int_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::integral_c">proto::integral_c</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_aggregate">proto::is_aggregate</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_callable">proto::is_callable</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_domain">proto::is_domain</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_env">proto::is_env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_expr">proto::is_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_extension">proto::is_extension</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_proto_expr">proto::is_proto_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::is_transform">proto::is_transform</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::key_not_found">proto::key_not_found</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::lazy">proto::lazy</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::less">proto::less</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::less_equal">proto::less_equal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::listN">proto::list1&lt;&gt;, proto::list2&lt;&gt;, ...</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::literal">proto::literal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::logical_and">proto::logical_and</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::logical_not">proto::logical_not</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::logical_or">proto::logical_or</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::long_">proto::long_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::make">proto::make</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::matches">proto::matches</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::mem_ptr">proto::mem_ptr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::minus">proto::minus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::minus_assign">proto::minus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::modulus">proto::modulus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::modulus_assign">proto::modulus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::multiplies">proto::multiplies</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::multiplies_assign">proto::multiplies_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::nary_expr">proto::nary_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::negate">proto::negate</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::noinvoke">proto::noinvoke</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::not_">proto::not_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::not_equal_to">proto::not_equal_to</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::nullary_expr">proto::nullary_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::or_">proto::or_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::otherwise">proto::otherwise</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::pack">proto::pack</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::pass_through">proto::pass_through</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::plus">proto::plus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::plus_assign">proto::plus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::pod_generator">proto::pod_generator</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::post_dec">proto::post_dec</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::post_inc">proto::post_inc</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::pre_dec">proto::pre_dec</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::pre_inc">proto::pre_inc</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::protect">proto::protect</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::as_child">proto::result_of::as_child</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::as_env">proto::result_of::as_env</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::as_expr">proto::result_of::as_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::child">proto::result_of::child</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::child_c">proto::result_of::child_c</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::deep_copy">proto::result_of::deep_copy</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::env_var">proto::result_of::env_var</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::eval">proto::result_of::eval</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::flatten">proto::result_of::flatten</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::has_env_var">proto::result_of::has_env_var</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::left">proto::result_of::left</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::make_expr">proto::result_of::make_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::right">proto::result_of::right</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::unpack_expr">proto::result_of::unpack_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::result_of::value">proto::result_of::value</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::reverse_fold">proto::reverse_fold</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::reverse_fold_tree">proto::reverse_fold_tree</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::shift_left">proto::shift_left</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::shift_left_assign">proto::shift_left_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::shift_right">proto::shift_right</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::shift_right_assign">proto::shift_right_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::size_t">proto::size_t</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::subscript">proto::subscript</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::switch_">proto::switch_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::address_of">proto::tag::address_of</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::assign">proto::tag::assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_and">proto::tag::bitwise_and</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_and_assign">proto::tag::bitwise_and_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_or">proto::tag::bitwise_or</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_or_assign">proto::tag::bitwise_or_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_xor">proto::tag::bitwise_xor</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::bitwise_xor_assign">proto::tag::bitwise_xor_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::comma">proto::tag::comma</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::complement">proto::tag::complement</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::dereference">proto::tag::dereference</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::divides">proto::tag::divides</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::divides_assign">proto::tag::divides_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::equal_to">proto::tag::equal_to</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::function">proto::tag::function</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::greater">proto::tag::greater</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::greater_equal">proto::tag::greater_equal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::if_else_">proto::tag::if_else_</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::less">proto::tag::less</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::less_equal">proto::tag::less_equal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::logical_and">proto::tag::logical_and</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::logical_not">proto::tag::logical_not</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::logical_or">proto::tag::logical_or</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::mem_ptr">proto::tag::mem_ptr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::minus">proto::tag::minus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::minus_assign">proto::tag::minus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::modulus">proto::tag::modulus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::modulus_assign">proto::tag::modulus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::multiplies">proto::tag::multiplies</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::multiplies_assign">proto::tag::multiplies_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::negate">proto::tag::negate</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::not_equal_to">proto::tag::not_equal_to</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::plus">proto::tag::plus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::plus_assign">proto::tag::plus_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::post_dec">proto::tag::post_dec</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::post_inc">proto::tag::post_inc</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::pre_dec">proto::tag::pre_dec</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::pre_inc">proto::tag::pre_inc</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::shift_left">proto::tag::shift_left</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::shift_left_assign">proto::tag::shift_left_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::shift_right">proto::tag::shift_right</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::shift_right_assign">proto::tag::shift_right_assign</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::subscript">proto::tag::subscript</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::terminal">proto::tag::terminal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag::unary_plus">proto::tag::unary_plus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::tag_of">proto::tag_of</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::term">proto::term</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::terminal">proto::terminal</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::transform">proto::transform</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::transforms_type">proto::transforms_type</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::transform_impl">proto::transform_impl</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::unary_expr">proto::unary_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::unary_plus">proto::unary_plus</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::use_basic_expr">proto::use_basic_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::unexpr">proto::unexpr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::vararg">proto::vararg</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::wants_basic_expr">proto::wants_basic_expr</classname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <classname alt="boost::proto::when">proto::when</classname>
        </computeroutput>
      </listitem>
    </itemizedlist>
  </section>

  <section id="proto.reference.functions">
    <title>Functions</title>
    <itemizedlist>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::as_child">proto::as_child()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::as_env">proto::as_env()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::as_expr">proto::as_expr()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::assert_matches">proto::assert_matches()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::assert_matches_not">proto::assert_matches_not()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::child">proto::child()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::child_c">proto::child_c()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::deep_copy">proto::deep_copy()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::display_expr">proto::display_expr()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::env_var">proto::env_var()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::eval">proto::eval()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::flatten">proto::flatten()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::has_env_var">proto::has_env_var()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::if_else">proto::if_else()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::left">proto::left()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::lit">proto::lit()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::make_expr">proto::make_expr()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::right">proto::right()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::unpack_expr">proto::unpack_expr()</functionname>
        </computeroutput>
      </listitem>
      <listitem>
        <computeroutput>
          <functionname alt="boost::proto::value">proto::value()</functionname>
        </computeroutput>
      </listitem>
    </itemizedlist>
  </section>

  <!-- headers -->
  <xi:include href="reference/args.xml"/>
  <xi:include href="reference/core.xml"/>
  <xi:include href="reference/debug.xml"/>
  <xi:include href="reference/deep_copy.xml"/>
  <xi:include href="reference/domain.xml"/>
  <xi:include href="reference/eval.xml"/>
  <xi:include href="reference/expr.xml"/>
  <xi:include href="reference/extends.xml"/>
  <xi:include href="reference/functional.xml"/>
  <xi:include href="reference/functional/fusion.xml"/>
  <xi:include href="reference/functional/fusion/at.xml"/>
  <xi:include href="reference/functional/fusion/pop_back.xml"/>
  <xi:include href="reference/functional/fusion/pop_front.xml"/>
  <xi:include href="reference/functional/fusion/push_back.xml"/>
  <xi:include href="reference/functional/fusion/push_front.xml"/>
  <xi:include href="reference/functional/fusion/reverse.xml"/>
  <xi:include href="reference/functional/range/begin.xml"/>
  <xi:include href="reference/functional/range/empty.xml"/>
  <xi:include href="reference/functional/range/end.xml"/>
  <xi:include href="reference/functional/range/rbegin.xml"/>
  <xi:include href="reference/functional/range/rend.xml"/>
  <xi:include href="reference/functional/range/size.xml"/>
  <xi:include href="reference/functional/std.xml"/>
  <xi:include href="reference/functional/std/iterator.xml"/>
  <xi:include href="reference/functional/std/utility.xml"/>
  <xi:include href="reference/fusion.xml"/>
  <xi:include href="reference/generate.xml"/>
  <xi:include href="reference/literal.xml"/>
  <xi:include href="reference/make_expr.xml"/>
  <xi:include href="reference/matches.xml"/>
  <xi:include href="reference/operators.xml"/>
  <xi:include href="reference/proto.xml"/>
  <xi:include href="reference/proto_fwd.xml"/>
  <xi:include href="reference/proto_typeof.xml"/>
  <xi:include href="reference/repeat.xml"/>
  <xi:include href="reference/tags.xml"/>
  <xi:include href="reference/traits.xml"/>
  <xi:include href="reference/transform.xml"/>
  <xi:include href="reference/transform/arg.xml"/>
  <xi:include href="reference/transform/call.xml"/>
  <xi:include href="reference/transform/default.xml"/>
  <xi:include href="reference/transform/env.xml"/>
  <xi:include href="reference/transform/fold.xml"/>
  <xi:include href="reference/transform/fold_tree.xml"/>
  <xi:include href="reference/transform/impl.xml"/>
  <xi:include href="reference/transform/integral_c.xml"/>
  <xi:include href="reference/transform/lazy.xml"/>
  <xi:include href="reference/transform/make.xml"/>
  <xi:include href="reference/transform/pass_through.xml"/>
  <xi:include href="reference/transform/when.xml"/>
  <xi:include href="reference/context.xml"/>
  <xi:include href="reference/context/callable.xml"/>
  <xi:include href="reference/context/default.xml"/>
  <xi:include href="reference/context/null.xml"/>

  <!-- concepts -->
  <xi:include href="reference/concepts/CallableTransform.xml"/>
  <xi:include href="reference/concepts/Domain.xml"/>
  <xi:include href="reference/concepts/Expr.xml"/>
  <xi:include href="reference/concepts/ObjectTransform.xml"/>
  <xi:include href="reference/concepts/PolymorphicFunctionObject.xml"/>
  <xi:include href="reference/concepts/PrimitiveTransform.xml"/>
  <xi:include href="reference/concepts/Transform.xml"/>

</library-reference>
